آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic تهیه و آموزش نرم افزار دارک بیسیک |
|||
یک شنبه 1 ارديبهشت 1392برچسب:, :: 1:36 :: نويسنده : ابوالفضل
این فصل پرمطلب ترین فصل وبلاگ می باشد . و شامل دستوراتی سه بعدی برای ایجاد ، حذف و تغییرات بر روی اشیای ساده و پیچیده ی سه بعدی می باشد .
مختصات سه بعدی به دنیای سه بعدی خوش آمدین . مختصات سه بعدی در محیط دارک بیسیک شباهت زیادی به دنیای واقعی ما دارد . یعنی مختصات سه بعدی شامل سه محور اصلی X و Y و Z است . سیستم مختصات سه بعدی در BarkBASIC بصورت شکل زیر می باشد .
در این شکل محور X ها طول و محور Y ها عرض و محور Z ها ارتفاع می باشد . یعنی زمانی که به مانیتور کامپیوتر نگاه می کنیم ، محور های مختصات سه بعدی بصورت شکل زیر است .
مطابق شکل ، محور X ها جهت چپ و راست و محور Y ها جهت بالا و پائین و محور Z ها به داخل و خارج از مانیتور ( عمود بر صفحه ی نمایشگر ) اشاره دارد . شکل زیر سه صفحه ی اصلی X-Y و X-Z و Y-Z را نشان می دهد .
هر جسم و یا نقطه ای در سیستم مختصات سه بعدی با هر یک از محور های X و Y و Z دارای یک فاصله منحصر به فرد می باشد . مانند نقطه ی P در شکل زیر :
در شکل بالا به ترتیب از چپ به راست ، فاصله ی نقطه ی P با هر کدام از محور ها نشان داده شده است . مختصات نقطه ای که در تقاطع این سه محور وجود داشته باشد ( 0 و 0 و 0 ) می باشد . یعنی X آن برابر صفر و Y آن برابر صفر و Z آن برابر صفر است یا می توان گفت ( X = 0 , Y = 0 , Z = 0 ) . ولی اگر مطابق شکل بالا فاصله ی نقطه ی P از محور X ها 10 و از محور Y ها 12 و از محور Z ها 14 در نظر بگیریم ، مختصات نقطه ی P برابر ( 14 و 12 و 10 ) خواهد بود .
آزمایش عملی در فضای سه بعدی : کدهای زیر را اجرا می کنیم . سپس موس را به بالا و پائین و چپ و راست حرکت می دهیم . همچنین می توانیم با حرکت چرخ مابین دکمه های موس به پایین و بالا ، در مجموع موقعیت یک کره را در مختصات سه بعدی تغییر دهیم .
Make Object Sphere 1,10 Position Camera 0,0,-300 Do (OPX = Object Position X(1 (OPY = Object Position Y(1 (OPZ = Object Position Z(1 ()MMX = MouseMoveX ()MMY = MouseMoveY ()MMZ = MouseMoveZ ()Position Object 1,OPX+MMX(),OPY+MMY()*-1,OPZ+MMZ (OSX=Object Screen X(1 (OSY=Object Screen Y(1 (If OBJECT IN SCREEN(1 "("+(Text OSX(1),OSY(1),"(X="+Str$(OPX)+",Y="+Str$(OPY)+",Z="+Str$(OPZ EndIf If OPX > 150 Then Position Object 1,150,OPY,OPZ If OPX < -150 Then Position Object 1,-150,OPY,OPZ If OPY > 150 Then Position Object 1,OPX,150,OPZ If OPY < -150 Then Position Object 1,OPX,-150,OPZ If OPZ > 240 Then Position Object 1,OPX,OPY,240 If OPZ < -240 Then Position Object 1,OPX,OPY,-240 Loop
فعلا با دستورات نوشته شده ی این کد ها کاری نداریم . فقط آنها را تایپ و اجرا می کنیم . با اجرای این مثال و حرکت موس و چرخ مابین کلید های آن ، مختصات این کره بر روی صفحه چاپ خواهد شد . یعنی با حرکت موس به بالا و پائین موقعیت Y و با حرکت موس به چپ و راست موقعیت X و با حرکت چرخ مابین دو کلید موس ، موقعیت Z کره تغییر خواهد کرد . البته ما حرکت کره را محدود کردیم ، تا از صفحه زیاد دور نشود .
نکته ی تکراری : برای اینکه طول بعضی از خطوط برنامه آن قدر بلند است که در عرض جا نمی شود ، ما تمام خطوطی که متعلق به یک خط در برنامه است را در این وبلاگ به رنگ نارنجی نوشتیم .
اشیاء سه بعدی در DarkBASIC : اشیاء سه بعدی در DarkBasic به دو بخش تقسیم می شوند . بخش اول ، اشیاء ساده و بخش دوم اشیاء پیچیده .
1- اشیاء ساده : اشیای ساده شامل جعبه ، کره ، مکعب ، مخروط و ... می باشند . مانند شکل زیر :
دستور MAKE OBJECT BOX این دستور جعبه سه بعدی می سازد . مانند دستورالعمل زیر :
MAKE OBJECT BOX ObjectNumber,Width,Height,Depth
طبق این دستورالعمل به جای ObjectNumber یک عدد در محدوده ی مثبت Integer یعنی یک تا 2,147,483,647 قرار می دهیم . در واقع با ایجاد هر شیء باید یک عدد نیز به آن اختصاص دهیم که به معنای نام آن شیء می باشد . با وجود این عدد که به معنی نام آن شیء است ، می توانیم در خطوط بعدی ، دستورات لازم را به شیء اعمال کنیم . یعنی توسط همین عدد ، شیء را تحت کنترل در بیاوریم . و به جای Width عرض و به جای Height ارتفاع و به جای Depth عمق جعبه را قرار می دهیم . مانند مثال زیر :
ObjectNumber = 1 Make Object Box ObjectNumber,10,20,30 Wait Key
با اجرای این مثال جعبه ای با عرض 10 و ارتفاع 20 و عمق 30 ایجاد خواهد شد .
نکته : ما نمی توانیم دو شیء را با یک عدد نامگذاری کنیم . مثلا اگر مثال زیر نوشته شود ، برنامه با خطا روبرو خواهد شد .
Make Object Box 2,10,5,30 Make Object Box 2,40,160,75
در این مثال ابتدا در خط اول یک جعبه ایجاد می شود ولی در خط دوم چون عدد اختصاصی به جعبه ی دوم توسط جعبه ی اول رزرو شده بود ، برنامه دچار خطا شد . یعنی به جای عدد 2 باید عدد دیگری قرار می دادیم . مثلا 5
دستور MAKE OBJECT CONE این دستور مخروط سه بعدی می سازد . مانند دستورالعمل زیر :
MAKE OBJECT CONE ObjectNumber,Size
طبق این دستورالعمل به جای ObjectNumber یک عدد برای نام مخروط و به جای Size سایز مخروط را قرار می دهیم . مانند مثال زیر :
Make Object Cone 2,10 Wait Key
دستور MAKE OBJECT CUBE این دستور مکعب سه بعدی ( جعبه ای که هر سطح آن مربع و به یک اندازه باشد ) می سازد . مانند دستورالعمل زیر :
MAKE OBJECT CUBE ObjectNumber,Size
طبق این دستورالعمل به جای ObjectNumber یک عدد برای نام مکعب و به جای Size سایز مکعب ( سایز هر ضلع آن ) را قرار می دهیم . مانند مثال زیر :
Make Object Cube 3,100 Wait Key
دستور MAKE OBJECT CYLINDER این دستور استوانه ی سه بعدی می سازد . مانند دستورالعمل زیر :
MAKE OBJECT CYLINDER ObjectNumber,Size
طبق این دستورالعمل به جای ObjectNumber یک عدد برای نام استوانه و به جای Size سایز استوانه ( قطر و ارتفاع استوانه هر دو به یک اندازه و به مقدار Size خواهند بود ) را قرار می دهیم . مانند مثال زیر :
Make Object Cylinder 3,70 Wait Key
دستور MAKE OBJECT PLAIN این دستور صفحه ای در فضا بشکل مستطیل می سازد . مانند دستورالعمل زیر :
MAKE OBJECT PLAIN ObjectNumber,Width,Height
طبق این دستورالعمل به جای ObjectNumber یک عدد برای نام صفحه و به جای Width عرض و به جای Height ارتفاع صفحه را قرار می دهیم . مانند مثال زیر :
Make Object Plain 70,10,10 Wait Key
دستور MAKE OBJECT SPHERE این دستور کره ی سه بعدی می سازد . مانند دستورالعمل زیر :
MAKE OBJECT SPHERE ObjectNumber,Size
طبق این دستورالعمل به جای ObjectNumber یک عدد برای نام کره و به جای Size اندازه ی قطر کره را قرار می دهیم . مانند مثال زیر :
Make Object Sphere 70,40 Wait Key
کره از سطوحی تشکیل شده است که با استفاده از دستورالعمل زیر می توانیم تعداد سطوح عمودی و افقی کره را تنظیم کنیم .
MAKE OBJECT SPHERE ObjectNumber,Size,Rows,Columns
طبق این دستورالعمل به جای ObjectNumber یک عدد برای نام کره و به جای Size اندازه ی قطر کره و به جای Rows تعداد سطوح افقی و به جای Columns تعداد سطوح عمودی کره را قرار می دهیم . مانند مثال زیر :
Make Object Sphere 1,40,10,10 Wait Key Make Object Sphere 2,40,30,30 Wait Key
با اجرای این مثال ابتدا یک کره با 10 سطح افقی و 10 سطح عمودی ساخته شد و با زدن یک کلید کره ی بعدی با 30 سطح افقی و 30 سطح عمودی ساخته شد . چون تعداد سطوح در کره ی دومی بیشتر بود ، پس کیفیت آن بالاتر از کیفیت کره ی اول خواهد بود . مانند شکل زیر :
دستور MAKE OBJECT TRIANGLE با این دستور می توانیم مثلت در فضای سه بعدی ایجاد کنیم . مانند دستورالعمل زیر :
MAKE OBJECT TRIANGLE ObjectNumber,X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3
طبق این دستورالعمل به جای ObjectNumber یک عدد برای نام مثلث و به جای X1 و Y1 و Z1 مختصات یکی از گوشه های مثلت و به جای X2 و Y2 و Z2 مختصات گوشه ی دوم مثلث و به جای X3 و Y3 و Z3 مختصات گوشه ی سوم مثلت را قرار می دهیم . مانند مثال زیر :
MAKE OBJECT TRIANGLE 2,3.5,6,7,2,0,3,5,0,3 Wait Key
مثلث بالا در مختصات فضای سه بعدی توسط شکل زیر ، شبیه سازی شده است . ![]() دستور DELETE OBJECT
با این دستور شیء مورد نظرمان را حذف می کنیم . مانند دستورالعمل زیر :
DELETE OBJECT ObjectNumber
طبق این دستورالعمل به جای ObjectNumber شماره ی شیء مورد نظر را قرار می دهیم تا حذف شود . مانند مثال زیر :
Make Object Box 1,10,20,30
Make Object Sphere 2,25
Wait 2000
Delete Object 1
Wait Key
با اجرای این مثال شی جعبه با شماره ی 1 و کره با شماره ی 2 ایجاد شدند . سپس پس از 2 ثانیه شیء جعبه با شماره ی 1 حذف شد .
صفحه قبل 1 صفحه بعد موضوعات آخرین مطالب آرشيو وبلاگ پیوندهای روزانه پيوندها
![]() نويسندگان |
|||
![]() |